AMINGA 2024 Student Survey Analysis

Setup

Code
library(here)
library(readr)
library(janitor)
library(dplyr)
library(magrittr)
library(ggplot2)
library(tidyr)

# wordcloud
library(tidytext)
library(wordcloud)

# likert
library(likert)
library(ggstats)
Code
data_location <- here("Data", "2024 - AMINGA Youth Participant Survey Responses - Master.csv")

survey <- read_csv(data_location, skip = 2) %>% 
  clean_names() 


survey_df <- survey %>% 
  dplyr::select(
    status, 
    gender_genero, 
    sport_overall_experience_1_not_great_3_neutral_5_amazing_experiencia_na_modalidade_1_suficiente_3_bom_5_muito_bom,
    english_1_not_great_3_neutral_5_amazing_ingles_1_suficiente_3_bom_5_muito_bom,
    art_1_not_great_3_neutral_5_amazing_arte_1_suficiente_3_bom_5_muito_bom,
    computer_1_not_great_3_neutral_5_amazing_computer_1_suficiente_3_bom_5_muito_bom,
    team_building_1_not_great_3_neutral_5_amazing_trabalho_de_equipa_1_suficiente_3_bom_5_muito_bom,
    human_rights_direitos_humanos_1_not_great_3_neutral_5_amazing_direitos_humanos_1_suficiente_3_bom_5_muito_bom,
    career_readiness_orientacao_de_carreira_1_not_great_3_neutral_5_amazing_orientacao_de_carreira_1_suficiente_3_bom_5_muito_bom,
    yoga_mindfulness_1_not_great_3_neutral_5_amazing_ioga_atencao_plena_1_suficiente_3_bom_5_muito_bom,
    food_1_not_great_3_neutral_5_amazing_comida_1_suficiente_3_bom_5_muito_bom,
    aminga_staff_2024_overall_1_not_great_3_neutral_5_amazing_equipa_de_aminga_2024_em_geral_1_suficiente_3_bom_5_muito_bom,
    aminga_camp_2024_overall_1_not_great_3_neutral_5_amazing_campus_aminga_2024_em_geral_1_suficiente_3_bom_5_muito_bom,
    do_you_want_to_return_to_aminga_camp_in_2024_queres_voltar_para_o_campus_aminga_em_2024
) %>% 
  dplyr::rename(
    english = english_1_not_great_3_neutral_5_amazing_ingles_1_suficiente_3_bom_5_muito_bom,
    art = art_1_not_great_3_neutral_5_amazing_arte_1_suficiente_3_bom_5_muito_bom,
    computer = computer_1_not_great_3_neutral_5_amazing_computer_1_suficiente_3_bom_5_muito_bom,
    team_building = team_building_1_not_great_3_neutral_5_amazing_trabalho_de_equipa_1_suficiente_3_bom_5_muito_bom,
    human_rights = human_rights_direitos_humanos_1_not_great_3_neutral_5_amazing_direitos_humanos_1_suficiente_3_bom_5_muito_bom,
    career_readiness = career_readiness_orientacao_de_carreira_1_not_great_3_neutral_5_amazing_orientacao_de_carreira_1_suficiente_3_bom_5_muito_bom,
    yoga = yoga_mindfulness_1_not_great_3_neutral_5_amazing_ioga_atencao_plena_1_suficiente_3_bom_5_muito_bom,
    food = food_1_not_great_3_neutral_5_amazing_comida_1_suficiente_3_bom_5_muito_bom,
    staff_overall = aminga_staff_2024_overall_1_not_great_3_neutral_5_amazing_equipa_de_aminga_2024_em_geral_1_suficiente_3_bom_5_muito_bom,
    camp_overall = aminga_camp_2024_overall_1_not_great_3_neutral_5_amazing_campus_aminga_2024_em_geral_1_suficiente_3_bom_5_muito_bom,
    sport = status,
    gender = gender_genero,
    sport_experience = sport_overall_experience_1_not_great_3_neutral_5_amazing_experiencia_na_modalidade_1_suficiente_3_bom_5_muito_bom, 
    return_next_year = do_you_want_to_return_to_aminga_camp_in_2024_queres_voltar_para_o_campus_aminga_em_2024
  ) %>% 
  mutate(
    sport = trimws(gsub("\\([^\\(\\)]*\\)", "", sport)),
    gender = trimws(gsub("\\([^\\(\\)]*\\)", "", gender)),
    return_next_year = trimws(gsub("\\s*\\([^\\)]+\\)","",return_next_year))
  ) %>% 
  mutate(
    across(
      where(
        is.numeric
      ), function(x) factor(
        x, 
        levels = 1:5, 
        labels = c(
          "Not Great", 
          "Meh",
          "Neutral",
          "Great",
          "Amazing"
            ),
         ordered = TRUE
        )))  %>% 
  as.data.frame()

survey_tibble <- survey_df %>% 
  mutate(
    sport = factor(sport, levels = c("Basketball", "Handball", "Volleyball")), 
    gender = factor(gender, level = c("Female", "Male"))
  ) %>% 
  tibble()


comments_sport_df <- survey %>% 
  select(
    i_loved_about_the_sport_eu_amei_sobre_a_modalidade, 
    i_would_change_about_the_sport_eu_mudaria_sobre_a_modalidade,
    comments_regarding_art_class_comentarios_sobre_as_aulas_de_arte,
    comments_regarding_english_class_comentarios_sobre_a_aula_de_ingles,
    comments_regarding_computer_class_comentarios_sobre_as_aulas_de_informatica,
    comments_regarding_team_building_comentarios_sobre_trabalho_de_equipa,
    comments_regarding_human_rights_comentarios_sobre_direitos_humanos,
    comments_regarding_career_readiness_comentarios_sobre_orientacao_de_carreira,
    comments_regarding_yoga_class_comentarios_sobre_a_aula_de_yoga,
    comments_regarding_the_food_comentarios_sobre_a_comida,
    aminga_staff_2024_overall_insert_appreciations_for_any_of_the_staff_equipa_de_aminga_em_geral_algum_comentario_sobre_qualquer_um_da_equipa_aminga,
    any_comments_or_suggestions_algum_comentario_ou_sugestao
) 


prep_word_cloud <- function(colname){
  
  pt_stopwords <- tibble(word = stopwords::stopwords('pt'))
  
  comments_sport_df %>% 
    select({{colname}}) %>% 
    unnest_tokens(word, {{colname}}) %>% 
    count(word, sort = TRUE)%>% 
    anti_join(pt_stopwords, by = "word")
  
}

Sports Overall

In Figure 1, We can see that:

  • over 70% of students thought that the camp’s sport experience was amazing,
  • over 10% of students thought that the camp’s sport experience was great, and
  • nobody had a negative experience of the camp’s sport experience.
Code
gglikert(
  survey_tibble, 
  include = sport_experience
) + 
  ggtitle(
    "Survey of the Student's Experience of Sports", 
    subtitle = "AMINGA 2024"
  ) 
Figure 1: Students Sports Experience

Subjects Overall

In Figure 2, We can see that:

  • over 95% of students thought that team building was amazing,
  • nearly 75% of students thought that art was amazing,
  • nearly 70% of students thought that human rights was amazing,
  • again nearly 70% of students thought that yoga was amazing,
  • 60% of students thought that either computers or maps was amazing,
  • nearly 50% of students thought that english was amazing,
  • nearly 75% of students thought that art was amazing, and
  • over 40% of students thought that career readiness was amazing.
Code
gglikert(
  survey_tibble, 
  include = english:yoga,
  sort = "descending",
) + 
  ggtitle(
    "Survey of the Student's Experience of Subjects", 
    subtitle = "AMINGA 2024"
  ) 
Figure 2: Student’s Experience of Subjects

Food Overall

In Figure 3, We can see that nearly 90% of students thought that the food was amazing, and no students had a negative impression of the food.

Code
gglikert(
  survey_tibble, 
  include = food
) + 
  ggtitle(
    "Survey of the Student's Experience of Food", 
    subtitle = "AMINGA 2024"
  ) 
Figure 3: Student’s Experience of Food

Staff Overall

In Figure 4, we can see that 96% of students thought that the staff was great or amazing, and that no students had a negative opinion of staff.

Code
gglikert(
  survey_tibble, 
  include = staff_overall
) + 
  ggtitle(
    "Survey of the Student's Experience of Staff", 
    subtitle = "AMINGA 2024"
  ) 
Figure 4: Student’s Experience of Staff

Camp Overall

In Figure 5, we can see that 90% of students had an amazing camp experience, while no students had a negative experience of the camp.

Code
gglikert(
  survey_tibble, 
  include = camp_overall
) + 
  ggtitle(
    "Survey of the Student's Experience of Camp", 
    subtitle = "AMINGA 2024"
  ) 
Figure 5: Student’s Experience of Camp

Return 2025?

The question originally was the following:

  • Do you want to return to AMINGA camp in 2024? Queres voltar para o campus Aminga em 2024?
Code
return_next_year_df <- survey_df %>% 
  dplyr::select(return_next_year) %>% 
  count(return_next_year) %>% 
  mutate(return_next_year = replace_na(return_next_year, "No Response"))

return_next_year_df
return_next_year n
Maybe 6
Yes 71
No Response 6
Code
ggplot(return_next_year_df, aes(x = return_next_year, y = n)) +
  geom_col() + 
  ggtitle("Number of Students willing to return for 2025") + 
  xlab("\n Student Response") + 
  ylab("Count\n")
Figure 6: Student’s Response to reurning Next Year

In Figure 6, we can see that over 70 students want to return to the camp next year, and that only 3 students are maybe considering coming back next year.

AMINGA 2025 Student Survey Analysis By Gender

Sports By Gender

In Figure 7, we can see that over 55% of females and over 80% of males thoughts that the sports experience was amazing.

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(sport_experience, gender) %>% 
  drop_na(),, 
  include = sport_experience,
  facet_cols = vars(gender)
) + 
  ggtitle(
    "Survey of the Student's Experience of Sports By Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 7: Students Sports Experience By Gender

Subjects By Gender

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(art, english, computer, human_rights, career_readiness, team_building,   yoga, gender) %>% 
  drop_na(), 
  include = english:yoga,
  facet_rows = vars(gender),
  sort = "descending"
) + 
  ggtitle(
    "Survey of the Student's Experience of Subjects By Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 8: Student’s Experience of Subjects By Gender

In Figure 8, we find the following:

Table 1: Students Responses to classes by Gender
Females Males
+ nearly 95% of females thought team building was amazing + 100% of males thought that team building was amazing
+ nearly 70% of females thought that yoga was amazing + 75% of males thought that yoga was amazing
+ nearly 60% of females thought that human rights was amazing + nearly 70% of males thought that human rights was amazing
+ 50% of females thought that either computing or maps was amazing + nearly 70% of males thought that either computing or maps was amazing
+ nearly 40% of females thought that english was amazing + nearly 60% of males thought that english was amazing
+ nearly 35% of females thought that career readiness was amazing + nearly 50% of males thought that career readiness was amazing

So by Table 1, we can see a positive view of the subjects in general by gender.

Food By Gender

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(food, gender) %>% 
  drop_na(), 
  include = food,
  facet_cols = vars(gender)
) + 
  ggtitle(
    "Survey of the Student's Experience of Food By Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 9: Student’s Experience of Food By Gender

In Figure 9, we can see that around 90% of males and females thought the food was amazing.

Staff By Gender

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(staff_overall, gender) %>% 
  drop_na(), 
  include = staff_overall,
  facet_cols = vars(gender)
) + 
  ggtitle(
    "Survey of the Student's Experience of Staff By Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 10: Student’s Experience of Staff By Gender

In Figure 10, over 85% of males and over 90% of females thought that the staff were amazing.

Camp By Gender

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(camp_overall, gender) %>% 
  drop_na(), 
  include = camp_overall,
  facet_cols = vars(gender)
) + 
  ggtitle(
    "Survey of the Student's Experience of Camp By Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 11: Student’s Experience of Camp By Gender

In Figure 11, over 80% of females and 95% of males thought that the camp was amazing.

Sports Groups

Subjects By Sports

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(english:yoga, sport) %>% 
  drop_na(), 
  include = english:yoga,
  sort = "descending",
  facet_rows = vars(sport)
) + 
  ggtitle(
    "Survey of the Student's Experience of Subjects By Sport", 
    subtitle = "AMINGA 2024"
  ) 
Figure 12: Student’s Experience of Subjects By Gender

In Figure 8, we find the following:

Table 2: Students Responses to Subjects by Sport
Basketball Handball Volleyball
+ 100% of basketball students thought that team building was amazing + over 90% of handball students thought that team building was amazing + 100% of volleyball students thought that team building was amazing
+ 78% of basketball students thought that art was amazing + nearly 85% of handball students thought that art was amazing + over 75% of volleyball students thought that art was amazing
+ nearly 80% of basketball students thought that yoga was amazing + 80% of handball students thought that yoga was amazing + 60% of volleyball students thought that yoga was amazing
+ over 60% of basketball students thought that human rights was amazing + 60% of handball students thought that human rights was amazing + over 70% of volleyball students thought that human rights was amazing
+ over 60% of basketball students thought that either computers or maps was amazing + over 55% of handball students thought that either computers or maps was amazing + nearly 65% of volleyball students thought that either computers or maps was amazing
+ nearly 45% of basketball students thought that english was amazing + nearly 45% of handball students thought that english was amazing + over 55% of volleyball students thought that english was amazing
+ over 55% of basketball students thought that career readiness was amazing + over 35% of handball students thought that career readiness was amazing + over 35% of volleyball students thought that career readiness was amazing

So by Table 2, we can see a positive view of the subjects in general by gender.

Food By Sports

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(food, sport) %>% 
  drop_na(), 
  include = food,
  facet_rows = vars(sport)
) + 
  ggtitle(
    "Survey of the Student's Experience of Food By Sport", 
    subtitle = "AMINGA 2024"
  ) 
Figure 13: Student’s Experience of Food By Sport

In Figure 13, we can see that over 90% of basketball students, over 95% od handball students and over 80% of volleyball students each thought that the food was amazing.

Camp By Sports

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(camp_overall, sport) %>% 
  drop_na(), 
  include = camp_overall,
  facet_rows = vars(sport)
) + 
  ggtitle(
    "Survey of the Student's Experience of Camp By Sport", 
    subtitle = "AMINGA 2024"
  ) 
Figure 14: Student’s Experience of Camp By Sport

In Figure 14, 100% of basketball students, nearly 90% of handball students and over 80% of volleyball students each thought that the camp was amazing.

Sports By Gender

Classes By Sports and Gender

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(english:yoga, sport, gender) %>% 
  drop_na(), 
  include = english:yoga,
  sort = "descending",
  facet_rows = vars(sport),
  facet_cols = vars(gender)
) + 
  ggtitle(
    "Survey of the Student's Experience of Subjects By Sport and Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 15: Student’s Experience of Subjects By Sport and Gender

In Figure 15, we can see that the majority of students have positive experiences of the subjects, but there are groups within basketball males that have a negative experience of computers or maps, groups within female handball players of who have a negative experience of english, groups within handball players of either gender who have a negative experience of career readiness, groups within female handball and female volleyball players who have a negative view of english.

Food By Sports and Gender

Code
gglikert(
  survey_tibble %>% 
  dplyr::select(food, sport, gender) %>% 
  drop_na(), 
  include = food,
  sort = "descending",
  facet_rows = vars(sport),
  facet_cols = vars(gender)
) + 
  ggtitle(
    "Survey of the Student's Experience of Food By Sport and Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 16: Student’s Experience of Food By Sport and Gender

In Figure 16, we note that female volleyball players are the only group that thought that the food was amazing with nearly 70% while the nearly 90% of the other sport and gender groups thought that the food was amazing.

Camp By Sport and Gender

Code
gglikert(
  survey_tibble %>%
    dplyr::select(camp_overall, gender, sport) %>% 
    drop_na(), 
  sort = "descending",
  include = camp_overall,
  facet_rows = vars(sport),
  facet_cols = vars(gender)
) + 
  ggtitle(
    "Survey of the Student's Experience of Camp By Sport and Gender", 
    subtitle = "AMINGA 2024"
  ) 
Figure 17: Student’s Experience of Camp By Sport and Gender

In Figure 17, we see that female volleyball players are the smallest sports and gender group to think that the camp was amazing with over 70%.

Comments

We make word clouds such that the larger the word in the word cloud the more frequent the word came up in the response of the students to the particular question.

I loved about the sport

Code
sport_love_count <- prep_word_cloud(i_loved_about_the_sport_eu_amei_sobre_a_modalidade) 
## Joining, by = "word"

wordcloud(words = sport_love_count$word, 
          freq = sport_love_count$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

I would change about the sport

Code
sport_change_count <- prep_word_cloud(i_would_change_about_the_sport_eu_mudaria_sobre_a_modalidade) 
## Joining, by = "word"

wordcloud(words = sport_change_count$word, 
          freq = sport_change_count$n, 
          min.freq = 1, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

Arts Comments

Code
arts_comments <- prep_word_cloud(comments_regarding_art_class_comentarios_sobre_as_aulas_de_arte) 
## Joining, by = "word"

wordcloud(words = arts_comments$word, 
          freq = arts_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

English Comments

Code
english_comments <- prep_word_cloud(comments_regarding_english_class_comentarios_sobre_a_aula_de_ingles) 
## Joining, by = "word"

wordcloud(words = english_comments$word, 
          freq = english_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

Computer Comments

Code
computer_comments <- prep_word_cloud(comments_regarding_computer_class_comentarios_sobre_as_aulas_de_informatica) 
## Joining, by = "word"

wordcloud(words = computer_comments$word, 
          freq = computer_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

Human Rights

Code
rights_comments <- prep_word_cloud(comments_regarding_human_rights_comentarios_sobre_direitos_humanos) 
## Joining, by = "word"

wordcloud(words = rights_comments$word, 
          freq = rights_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

Team Building

Code
team_building_comments <- prep_word_cloud(comments_regarding_team_building_comentarios_sobre_trabalho_de_equipa) 
## Joining, by = "word"

wordcloud(words = team_building_comments$word, 
          freq = team_building_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

Yoga Comments

Code
yoga_comments <- prep_word_cloud(comments_regarding_yoga_class_comentarios_sobre_a_aula_de_yoga) 
## Joining, by = "word"

wordcloud(words = yoga_comments$word, 
          freq = yoga_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

Food Comments

Code
food_comments <- prep_word_cloud(comments_regarding_the_food_comentarios_sobre_a_comida) 
## Joining, by = "word"

wordcloud(words = food_comments$word, 
          freq = food_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

AMINGA Staff Comments

Code
staff_comments <- prep_word_cloud(aminga_staff_2024_overall_insert_appreciations_for_any_of_the_staff_equipa_de_aminga_em_geral_algum_comentario_sobre_qualquer_um_da_equipa_aminga) 
## Joining, by = "word"

wordcloud(words = staff_comments$word, 
          freq = staff_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))

Any Comments or Suggestions

Code
any_comments <- prep_word_cloud(any_comments_or_suggestions_algum_comentario_ou_sugestao) 
## Joining, by = "word"

wordcloud(words = any_comments$word, 
          freq = any_comments$n, 
          min.freq = 2, 
          random.order=FALSE, 
          rot.per=0.3, 
          colors=brewer.pal(8, "Dark2"))